#include <iostream>
#include "getopt.c"
using namespace std;
#ifndef TEST
int main(int argc,char **argv)
{
/* Compile with -DTEST to make an executable for use in testing
   the above definition of `getopt'.  */
  int c;
  int digit_optind = 0;

  while (1)
    {
      int this_option_optind = optind ? optind : 1;
      c = getopt (argc, argv, "abc:d:0123456789");
      if (c == EOF)
		  break;
	  switch (c)
	  {
		case '0':
		case '1':
		case '2':
		case '3':
		case '4':
		case '5':
		case '6':
		case '7':
		case '8':
		case '9':
		  if (digit_optind != 0 && digit_optind != this_option_optind)
			printf ("digits occur in two different argv-elements.\n");
		  digit_optind = this_option_optind;
		  printf ("option %c\n", c);
		  break;

		case 'a':
		  printf ("option a\n");
		  break;

		case 'b':
		  printf ("option b\n");
		  break;

		case 'c':
		  printf ("option c with value `%s'\n", optarg);
		  break;

		case BAD_OPTION:
		  break;

		default:
		  printf ("?? getopt returned character code 0%o ??\n", c);
		}
    }

  if (optind < argc)
    {
      printf ("non-option ARGV-elements: ");
      while (optind < argc)
	printf ("%s ", argv[optind++]);
      printf ("\n");
    }

  exit (0);
}

#endif /* TEST */